package com.jindy.module.jpush.mapper;

import java.util.List;
import com.jindy.module.jpush.domain.Jpush;
import io.lettuce.core.dynamic.annotation.Param;

/**
 * jpush消息推送Mapper接口
 * 
 * @author jindy
 * @date 2023-04-02
 */
public interface JpushMapper 
{
    /**
     * 查询jpush消息推送
     * 
     * @param id jpush消息推送主键
     * @return jpush消息推送
     */
    public Jpush selectJpushById(Long id);

    /**
     * 查询jpush消息推送列表
     * 
     * @param jpush jpush消息推送
     * @return jpush消息推送集合
     */
    public List<Jpush> selectJpushList(Jpush jpush);

    /**
     * 根据userid查询
     * @param userId
     * @return
     */
    Jpush selectJpushByUserId(@Param("userId") Long userId);

    /**
     * 根据多个用户id获取设备id
     * @param userIds
     * @return
     */
    List<String> selectRegistrationIdsByUserIds(@Param("userIds") List<Long> userIds);

    /**
     * 新增jpush消息推送
     * 
     * @param jpush jpush消息推送
     * @return 结果
     */
    public int insertJpush(Jpush jpush);

    /**
     * 修改jpush消息推送
     * 
     * @param jpush jpush消息推送
     * @return 结果
     */
    public int updateJpush(Jpush jpush);

    /**
     * 删除jpush消息推送
     * 
     * @param id jpush消息推送主键
     * @return 结果
     */
    public int deleteJpushById(Long id);

    /**
     * 批量删除jpush消息推送
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteJpushByIds(Long[] ids);

    /**
     * 根据userid修改jpush消息推送信息
     * @param jpush
     */
    void updateJpushByUserId(Jpush jpush);
}
